home *** CD-ROM | disk | FTP | other *** search
/ Aminet 39 / Aminet 39 (2000)(Schatztruhe)[!][Oct 2000].iso / Aminet / biz / swood / FW_AllInOne.lha / Makros / Compress.long < prev    next >
Text File  |  1998-01-17  |  10KB  |  364 lines

  1. /*****************************************
  2.  * Compress                              *
  3.  * $VER: 3.0 © Heiko Schröder 09.01.98   *
  4.  *****************************************/
  5.  
  6. /*NEU: beim Laden wird Original gelöscht*/
  7. /*     Auswahl merken (Lha/lzx, löschen)*/
  8.  
  9. /*18.11. NEU: Code-optimiert */
  10. /*Compress-opt mit Preferences*/
  11.  
  12. Parse ARG FW
  13.  
  14. if ~show('L',"rexxreqtools.library") then
  15.    if ~addlib('rexxreqtools.library',0,-30,0) then do
  16.       'ShowMessage 1 1 "Fehler...." "Benötige Libs:rexxreqtools.library" " A B B R U C H ! !" "Okay" "" ""'
  17.       exit
  18.    end
  19. IF ~show('L','tritonrexx.library') then
  20.    IF ~ADDLIB('tritonrexx.library',10,-30,0) THEN DO
  21.       'ShowMessage 2 1 "Fehler...." "Benötige Libs:tritonrexx.library" "" "Abbruch" "" ""'
  22.       exit
  23.    END
  24.  
  25. R='0A'X
  26. If FW='' then do
  27.    Address='FinalW'
  28.    Options results
  29.  
  30.    STATUS PORTNAME
  31.    FW = result
  32. End
  33.    address(FW)
  34.    Status PathName
  35.    DName=result; If DName='' then DName='Unbenannt'
  36.  
  37. SIGNAL ON SYNTAX
  38.  
  39. address "REXX"
  40. If open('Hilfe',"S:FW_Paket.prefs","R") then do
  41.    HilfeVerz=readln('Hilfe')
  42.    Call Close('Hilfe')
  43. End
  44. else HilfeVerz=''
  45.  
  46. FWP="FinalWriterPubScreen"
  47.  
  48. Mode=GetClip("MO"); If mode='' then mode=1
  49. Orig=GetClip("OR"); If orig='' then orig=0
  50.  
  51. nr=0                          /*Init*/
  52. If exists("c:lha") then do
  53.    nr=nr+1
  54.    mxlist.nr = 'Lha'
  55.    LBefehl.nr="lha e "
  56.    SBefehl.nr="lha u "
  57.    Endung.nr =".FWLHA"
  58. end
  59. If exists("c:lzx") then do
  60.    nr=nr+1
  61.    mxlist.nr = 'Lzx'
  62.    LBefehl.nr="lzx x -X0 "
  63.    SBefehl.nr="lzx u -X0 "
  64.    Endung.nr=".FWLZX"
  65. end
  66. mxlist.0 =nr
  67. LBefehl.0=nr
  68. SBefehl.0=nr
  69. Endung.0 =nr
  70.  
  71. If nr=0 then do
  72.    ret=rtezrequest("Kein Komprimierer vorhanden!"||R||"Weder LHA noch LZX...",,"Error...","rt_pubscrname=FinalWriterPubScreen")
  73.    Exit
  74. END
  75.  
  76. apptags = 'TRCA_Name     Compress',
  77.           'TRCA_LongName "Compress"',
  78.           'TRCA_Info     "Makro für Finalwriter"',
  79.           'TRCA_Version  "3.0 registered"',
  80.           'TRCA_Release  "3"',
  81.           'TRCA_Date     "09.01.98"',
  82.           'TAG_END'
  83.  
  84. windowtags = WindowID(1),
  85.              WindowPosition('TRWP_CENTERDISPLAY'),
  86.              WindowFlags('TRWF_NOSIZEGADGET|TRWF_NOMINTEXTWIDTH'),
  87.              PubScreenName(FWP),
  88.              WindowTitle('Compress'),
  89.              BeginMenu('Projekt'),
  90.                 MenuItem('Q_Verlassen',104),
  91.              BeginMenu('?'),
  92.                 MenuItem('?_Info',101),
  93.                 MenuItem('H_Hilfe',103),
  94.              'HorizGroupEAC SpaceS',
  95.                 'VertGroupEAC SpaceS',
  96.                    'HorizGroupEAC',
  97.                          TextN('Dateiname:'),
  98.                          'SpaceS',
  99.                       TextH(DName) 'TRAT_ID 7',
  100.                    'EndGroup',
  101.                    'SpaceS',
  102.                       'HorizGroupEAC',
  103.                          TextID('_Modus:',1) 'TRAT_Flags TROF_RIGHTALIGN',
  104.                          'SpaceS',
  105.                          MXGadget('mxlist',mode-1,1) 'TRAT_Flags TRCY_RIGHTLABELS',
  106.                       'EndGroup',
  107.                       'SpaceS',
  108.                       'HorizGroupEAC',
  109.                          TextID('_Original löschen:',4) 'TRAT_Flags TRCY_RIGHTLABELS TRAT_ID 4',
  110.                          'SpaceS',
  111.                          CheckBox(4) 'TRAT_Value' Orig,
  112.                          'Space',
  113.                          TextID('Dok_Voreinsteller:',6) 'TRAT_Flags TRCY_RIGHTLABELS TRAT_ID 6',
  114.                          'SpaceS',
  115.                          CheckBox(6) 'TRAT_Value' 0,
  116.                       'EndGroup',
  117.                       'SpaceS',
  118.                       'HorizSeparator',
  119.                       'SpaceS',
  120.                       'HorizGroupEAC',
  121.                          Button('_Laden',2),
  122.                          'SpaceS',
  123.                          Button('_Speichern',3),
  124.                          'SpaceS',
  125.                          Button('Speichern _als',5),
  126.                      'EndGroup',
  127.                    'SpaceS',
  128.                    'EndGroup',
  129.                    'SpaceS',
  130.                 'EndGroup SpaceS',
  131.                 'SpaceS',
  132.              'EndGroup',
  133.           'EndProject'
  134.  
  135. app = TR_CREATEAPP('TRCA_Name Compress')
  136.  
  137. l=0
  138.  
  139. IF app ~= '00000000'x THEN DO
  140.    window1 = TR_OPENPROJECT(app,windowtags)
  141.    IF window1 ~= '00000000'x THEN DO
  142.       ende = 0
  143.  
  144.       DO WHILE ende ~= 1
  145.          address(FW)
  146.          Status PathName
  147.          DName=result; If DName='' then DName='Unbenannt'
  148.          Call TR_SETATTRIBUTE(window1,7,'TRAT_TEXT',DName)
  149.  
  150.          CALL TR_WAIT(app,'')
  151.  
  152.          DO WHILE TR_HANDLEMSG(app,'event')
  153.             IF event.trm_class = 'TRMS_NEWVALUE' THEN DO
  154.                SELECT
  155.                   WHEN event.trm_id = 1 THEN Do
  156.                      mode = event.trm_data+1
  157.                   END
  158.  
  159.                   WHEN event.trm_id = 4 THEN DO         /*löschen*/
  160.                      orig = event.trm_data
  161.                   END
  162.  
  163.                   WHEN event.trm_id = 6 THEN DO         /*DokSave-Einsteller*/
  164.                      address(FW)
  165.                      Preferences DocumentSave
  166.                      Call TR_SETATTRIBUTE(window1,6,'TRAT_Value', 0)
  167.                   END
  168.  
  169.                   OTHERWISE
  170.                      NOP
  171.                END
  172.             END
  173.  
  174.             IF event.trm_class = 'TRMS_ACTION' THEN DO
  175.                SELECT
  176.                   WHEN event.trm_id = 2 THEN Call Laden
  177.  
  178.                   WHEN event.trm_id = 3 THEN Do
  179.                      Status FileName
  180.                      name=result
  181.                      Call Speichern
  182.                   END
  183.  
  184.                   WHEN event.trm_id = 5 THEN Do
  185.                      name=""
  186.                      Call Speichern
  187.                   END
  188.  
  189.                   WHEN event.trm_id = 101 THEN Call rtezrequest("Aus dem Makro-Paket:"||R||R||"Compress V3.0 für FW"||R||"© 1998 Heiko Schröder","Danke für Ihre Registrierung.","Info","rt_pubscrname=FinalWriterPubScreen")
  190.                   WHEN event.trm_id = 103 THEN address command "Multiview PUBSCREEN=FinalWriterPubScreen "||d2c(34)||HilfeVerz||"Compress.guide"||d2c(34)
  191.                   WHEN event.trm_id = 104 THEN ende=1
  192.  
  193.                   OTHERWISE
  194.                      NOP
  195.                END
  196.             END
  197.  
  198.             IF event.trm_class = 'TRMS_CLOSEWINDOW' THEN DO
  199.                void=SetClip("MO",Mode)
  200.                void=SetClip("OR",Orig)
  201.                ende = 1
  202.             END
  203.          END
  204.       END
  205.  
  206.       CALL TR_CLOSEPROJECT(window1)
  207.    END
  208.  
  209.    CALL TR_DELETEAPP(app)
  210. END
  211. ELSE
  212.    CALL quit('Kann das Fenster nicht öffnen',10)
  213.  
  214.  
  215. Exit
  216.  
  217.  
  218. Laden:
  219.  
  220. dir=rtfilerequest(,,Endung.mode||"-Datei auswählen...","Start","rt_pubscrname=FinalWriterPubScreen rtfi_matchpat=#?"||Endung.mode)
  221. if dir~="" then do
  222.    directory=dir
  223.    dir=d2c(34)||dir||d2c(34)
  224.    pos=LastPos(Endung.mode,upper(dir))
  225.    if pos~=0 then do
  226.       file=left(dir,pos-1)||d2c(34)
  227.       filemerk=file
  228.       pos1 = max(index(file,':'),lastpos('/',file))
  229.       pos2=LastPos(d2c(34),file)
  230.       file=d2c(34)||Right(file,pos2-pos1)
  231.  
  232.       possy1 = max(index(directory,':'),lastpos('/',directory))
  233.       directory=d2c(34)||left(directory,possy1)||d2c(34)
  234.       address command LBefehl.mode||dir directory
  235.  
  236.       text="Dokument wird geladen."
  237.       Call OpenWin
  238.       address(FW)
  239.       Open filemerk
  240.       address command "delete "||filemerk||" QUIET"
  241.       CALL TR_CLOSEPROJECT(window2)
  242.       CALL TR_DELETEAPP(app2)
  243.    END
  244.    ELSE do
  245.       ret=rtezrequest("Dies ist keine komprimierte Datei!",,"Error...","rt_pubscrname=FinalWriterPubScreen")
  246.    END
  247. END
  248. address(FW)
  249. Status PathName
  250. DName=result; If DName='' then DName='Unbenannt'
  251. Call TR_SETATTRIBUTE(window1,7,'TRAT_TEXT',DName)
  252.  
  253. Return
  254.  
  255. /*****************
  256. ** Speichern
  257. ******************/
  258.  
  259. Speichern:
  260.  
  261.    Status PathName
  262.    NamePath=result
  263.    If name="" then NamePath=""
  264.  
  265.    text="Dokument "||NamePath||" wird gespeichert."
  266.    Call OpenWin
  267.  
  268.    If name="" then do
  269.       SaveAs
  270.       If result=0 then break
  271.  
  272.       Status FileName
  273.       name=result
  274.    End
  275.    Else do
  276.       NamePath=d2c(34)||NamePath||d2c(34)
  277.       Save NamePath
  278.    End
  279.  
  280.    if name="" then do
  281.       CALL TR_CLOSEPROJECT(window2)
  282.       CALL TR_DELETEAPP(app2)
  283.       ret=rtezrequest("Dokument wurde NICHT gespeichert.",,"Achtung","rt_pubscrname=FinalWriterPubScreen")
  284.       return
  285.    end
  286.  
  287.    Status PathName
  288.    NamePath=result
  289.    NamePath=d2c(34)||NamePath
  290.  
  291.    address command "delete "NamePath".info"||d2c(34)" QUIET"
  292.  
  293.    LhaName=NamePath||Endung.mode||d2c(34)
  294.    NamePath=NamePath||d2c(34)
  295.  
  296.    address command SBefehl.mode||LhaName NamePath
  297.    if orig=1 then address command "delete "NamePath" QUIET"
  298.  
  299.    CALL TR_CLOSEPROJECT(window2)
  300.    CALL TR_DELETEAPP(app2)
  301.  
  302.    address(FW)
  303.    Status PathName
  304.    DName=result; If DName='' then DName='Unbenannt'
  305.    Call TR_SETATTRIBUTE(window1,7,'TRAT_TEXT',DName)
  306. return
  307.  
  308. /*****************
  309. ** Window öffnen
  310. ******************/
  311.  
  312. OpenWin:
  313. windowtags = WindowID(2),
  314.              WindowPosition('TRWP_CENTERDISPLAY'),
  315.              WindowFlags('TRWF_NOZIPGADGET|TRWF_NOSIZEGADGET'),
  316.              PubScreenName(FWP),
  317.              'HorizGroupAC',
  318.                 'Space',
  319.                 'VertGroupA',
  320.                    'Space',
  321.                    TextID('Einen Moment Geduld.',1),
  322.                    TextID(text,2),
  323.                    'Space',
  324.                 'EndGroup',
  325.                 'Space',
  326.              'EndGroup',
  327.              'EndProject'
  328.    app2 = TR_CREATEAPP('TRCA_Name Save')
  329. window2 = TR_OPENPROJECT(app2,windowtags)
  330. Return
  331.  
  332. /*******************************************************************************
  333. ** Routine, die bei einer Unterbrechung des Scripts aufgerufen wird
  334. *******************************************************************************/
  335.  
  336. SYNTAX:
  337.    CALL quit('Fehler' rc 'in Zeile' sigl '-' ERRORTEXT(rc)||R||SOURCELINE(sigl)||R||'Bitte informieren Sie den Autor...',20)
  338.  
  339.  
  340. /*******************************************************************************
  341. ** Script beenden
  342. *******************************************************************************/
  343.  
  344. quit:
  345.    PARSE ARG message,rcode
  346.  
  347.    IF app ~= '00000000'x THEN DO
  348.       IF message ~= '' THEN
  349.          ret=rtezrequest(message,"_Okay","ACHTUNG!","rt_pubscrname=FinalWriterPubScreen")
  350.  
  351.       CALL TR_DELETEAPP(app)
  352.    END
  353.    ELSE DO
  354.       IF message ~= '' THEN DO
  355.          SAY message
  356.          SAY
  357.          OPTIONS PROMPT 'Bitte <RETURN> drücken'
  358.          PULL taste
  359.       END
  360.    END
  361.  
  362.    address command "flushtrx all"
  363.    EXIT(rcode)
  364.